package com.bst.base.service.impl;

import java.util.List;

import com.bst.base.domain.BaseInterFld;
import com.bst.base.vo.BaseInterFldVO;
import com.bst.base.vo.MdMedDimFldVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bst.base.mapper.MdMedDimFldMapper;
import com.bst.base.domain.MdMedDimFld;
import com.bst.base.service.IMdMedDimFldService;
import com.bst.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;

/**
 * 维度字段Service业务层处理
 * 
 * @author laoliu
 * @date 2024-11-16
 */
@Service
public class MdMedDimFldServiceImpl implements IMdMedDimFldService 
{
    @Autowired
    private MdMedDimFldMapper mdMedDimFldMapper;

    /**
     * 查询维度字段
     * 
     * @param idDimFld 维度字段主键
     * @return 维度字段
     */
    @Override
    public MdMedDimFld selectMdMedDimFldByIdDimFld(Long idDimFld)
    {
        return mdMedDimFldMapper.selectMdMedDimFldByIdDimFld(idDimFld);
    }

    /**
     * 查询维度字段列表
     * 
     * @param mdMedDimFld 维度字段
     * @return 维度字段
     */
    @Override
    public List<MdMedDimFld> selectMdMedDimFldList(MdMedDimFld mdMedDimFld)
    {
        return mdMedDimFldMapper.selectMdMedDimFldList(mdMedDimFld);
    }

    /**
     * 新增维度字段
     * 
     * @param mdMedDimFld 维度字段
     * @return 结果
     */
    @Override
    public int insertMdMedDimFld(MdMedDimFld mdMedDimFld)
    {
        return mdMedDimFldMapper.insertMdMedDimFld(mdMedDimFld);
    }

    /**
     * 修改维度字段
     * 
     * @param mdMedDimFld 维度字段
     * @return 结果
     */
    @Override
    public int updateMdMedDimFld(MdMedDimFld mdMedDimFld)
    {
        return mdMedDimFldMapper.updateMdMedDimFld(mdMedDimFld);
    }

    /**
     * 批量删除维度字段
     * 
     * @param idDimFlds 需要删除的维度字段主键
     * @return 结果
     */
    @Override
    public int deleteMdMedDimFldByIdDimFlds(String idDimFlds)
    {
        return mdMedDimFldMapper.deleteMdMedDimFldByIdDimFlds(Convert.toStrArray(idDimFlds));
    }

    @Override
    @Transactional
    public int insertBatchMdMedDimFld(MdMedDimFldVO vo) {
        String cdTb = vo.getCdTb();
        for (MdMedDimFld fld : vo.getFlds()) {
            fld.setCdTb(cdTb);
        }
        mdMedDimFldMapper.deleteMdMedDimFldByCdTb(cdTb);
        return mdMedDimFldMapper.insertBatchMdMedDimFld(vo.getFlds());
    }
}
